/*
 * @Date: 2023-01-22 02:17:37
 * @LastEditors: 恶名扬 2080156129@qq.com
 * @LastEditTime: 2023-01-24 06:48:42
 * @FilePath: \campus-repair-platform\server\schema\common.js
 */
const joi = require("joi")

// 通用
const id = joi.string().length(32).error(new Error("ID格式有误"))
exports.id = id
exports.page = joi.number().min(1).required().error(new Error("页码格式有误"))
exports.pagesize = joi
  .number()
  .min(1)
  .max(50)
  .required()
  .error(new Error("数据条数格式有误"))


exports.faculty = joi.string().min(1).max(15).error(new Error("学部格式有误"))
exports.grade = joi.string().min(1).max(8).error(new Error("年级格式有误"))
exports.s_class = joi.string().min(1).max(10).error(new Error("班级格式有误"))

// 用户
exports.account = joi
  .string()
  .pattern(/^\w{5,12}$/)
  .error(new Error("账号格式有误"))
exports.s_number = joi
  .string()
  .pattern(/^[0-9]{10,12}$/)
  .error(new Error("学号格式有误"))
exports.job_number = joi
  .string()
  .pattern(/^(wx|gl)[0-9]{3,6}$/)
  .error(new Error("工号格式有误"))
exports.password = joi
  .string()
  .pattern(/^[\S]{6,12}$/)
  .error(new Error("密码格式有误"))
exports.name = joi.string().min(2).max(20).error(new Error("姓名格式有误"))
exports.phone = joi
  .string()
  .pattern(
    /^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/
  )
  .error(new Error("手机号格式有误"))

// 维修人员 & 管理员
exports.gender = joi.string().pattern(/^[男|女]$/).error(new Error("性别格式有误"))
exports.state = joi.number().min(0).max(1).error(new Error("状态格式有误"))

// 公告
exports.a_title = joi.string().min(1).max(50).error(new Error("标题格式有误"))

// 报修
exports.p_name = joi.string().pattern(/(\S+,)?/).error(new Error("图片链接格式有误"))

// 反馈
exports.f_title = joi.string().max(50).error(new Error("标题格式有误"))

// body id
exports.id_b_schema = {
  body: {
    id,
  },
}

// 地址栏id
exports.id_p_schema = {
  params: {
    id: id.required(),
  },
}
